#pragma once
#include "MysqlDao.h"
#include <memory>
#include "Singleton.h"
#include "data.h"


class MysqlMgr:public Singleton<MysqlMgr>
{
    friend class Singleton<MysqlMgr>;
public:
    ~MysqlMgr()=default;
    int RegUser(const std::string&name, const std::string& email, const std::string& pwd);
    // 到数据库中去查找用户名和邮箱是否匹配
    bool CheckEmail(const std::string& name, const std::string& email);
    // 更新密码
    bool UpdatePassword(const std::string& name, const std::string& pwd);
    // 检查密码和用户是否匹配
    bool CheckPwd(const std::string& name, const std::string& pwd,UserInfo& userinfo);
    // 根据uid查询用户信息
    std::shared_ptr<UserInfo> GetUser(int uid);
    // 根据用户名查询用户信息
    std::shared_ptr<UserInfo> GetUserByName(const std::string& name);
    // 添加好友申请记录
    bool AddFriendApply(int from_uid,int to_uid);
    // 获取好友申请列表
    bool GetApplyFriendList(int to_uid,std::vector<std::shared_ptr<ApplyInfo>>& apply_list,int offset,int limit=10);
private:
    MysqlMgr()=default;
private:
    MysqlDao dao_;
};
